# -*- coding: utf-8 -*-
from time import time

class common:
    """常用函式收集。

    """
    def __init__(self):
        """构造函式。
        """
        pass

    def make_incrementor(self,n):
        """Lambda函式练习。

        f=make_incrementor(n)
        f等价于
        def f(x):
            return x+n
        """
        return lambda x: x+n

    def paramTest(self,para1,para2='hello',*args,**dic):
        """参数传递示例。

        参数格式为 *para 表示接受一个元组 
        为 **para 表示接受一个字典 
        *para要在**para之前 
        """
        print "param1="+para1
        print "param2="+para2

        print "以下为*args类型参数："
        for arg in args:
            print arg
        print "以下为**dic类型参数："
        for k,v in dic.iteritems():
            print k,v

    # @装饰器示例
    def cost_time(func):
        """测试运行时间

        只要调用被装饰的函式就能计算运行时间
        """
        def result(*args,**dic):
            begin=time()
            func(*args,**dic)
            print "cost time:",time()-begin
        return result

    @cost_time
    def show(self,n):
        """装饰器的用法
        """
        for x in range(n):
            print x

    # yield示例
    def yieldDemo(self,data):
        """yield使用

        for char in yieldDemo("golf"):
        print char,
        """
        for index in range(len(data)-1,-1,-1):
            yield data[index]
        
        
